#ifndef __COMMAND__
#define __COMMAND__
#include <my_header.h>

// 命令返回的结构体
typedef struct commandResult_s
{

    int ret;// 命令函数的返回值
    char *result;// 命令执行的结果
    char **result_ls;// ls命令返回的内容
    int ls_linenum;// ls命令内容的行数
     
} commandResult_t;

typedef enum
{
    FIEE = 1,
    //DIR
} DATATYPE_TH7;

typedef struct datadeal_s
{
    DATATYPE_TH7 dt;
} dataDeal_t;


// sqm------------->//
int command_ls(const char *path, commandResult_t *commandResult);
int command_pwd(const char *path, commandResult_t *commandResult);
int command_mkdir(const char *path, commandResult_t *commandResult);
int command_rmdir(const char *path, commandResult_t *commandResult);

// lyh------------->//
// 目录跳转，pwd当前目录,dest_dir目标目录，以./开头是相对目录，/是绝对路径
// pwd相求不是系统根目录而是用户的目录如 /用户1号/cpp66
int command_cd(const char *virtual_pwd, const char *dest_dir, commandResult_t *commandResult);

// 这两条指令接口没有定下来
int command_puts(const char *path, commandResult_t *commandResult);
int command_gets(const char *path, commandResult_t *commandResult);

// 删除目录/文件，real_url_rootdir必须是系统的真实目录，如/usr/lyh/th7_storage/,
// rm_path是用户的需要删除的虚拟目录
int command_remove(const char *real_url_rootdir, const char *rm_path, commandResult_t *commandResult);

// 释放result 
void freeCommdResult(commandResult_t *comres);

#endif
